package com.ftg.learn.bus.menu.menu_service;

import com.ftg.learn.bus.control_list.service.control_list_service;
import com.ftg.learn.bus.menu.menu_mapper.menu_admin_mapper;
import com.ftg.learn.bus.menu.menu_pojo.menu_admin;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;
import java.util.Map;

@Service
public class menu_admin_service {
    @Autowired
    menu_admin_mapper mam;

    @Autowired
    control_list_service cls;

    /**
     * 查询所有菜单 以及其父级菜单名称
     * @return
     */
    public List<Map<String, Object>> querMenu(){
        return mam.querMenu();
    }

    /**
     * 添加菜单
     * @param ma
     * @return
     */
    public int insert(menu_admin ma){
        if(findOne(ma.getMenu_id()) != null || ma.getMenu_loc()==null ||  ma.getMenu_loc().equals("") ||  ma.getMenu_lv() == 0){
            return -1;
        }
        return mam.insert(ma);
    }

    /**
     * 根据主键查找对应的菜单
     * @param menu_id
     * @return
     */
    public menu_admin findOne(int menu_id){
        return mam.selectById(menu_id);
    }

    /**
     * 根据菜单id删除 菜单信息
     * @param menu_id
     * @return
     */
    public int deleteByMenu_id(int menu_id){
        if(findOne(menu_id) == null){
            return -1;
        }
        cls.deleteByMenu_id(menu_id+"");
        return mam.deleteById(menu_id);
    }

    /**
     * 修改菜单信息
     * @param ma
     * @return
     */
    public int update(menu_admin ma){
        if(findOne(ma.getMenu_id()) == null || ma.getMenu_loc()==null ||  ma.getMenu_loc().equals("") ||  ma.getMenu_lv() == 0){
            return -1;
        }
        return mam.updateById(ma);
    }

    /**
     * 根据菜单id多条删除菜单
     * @param menu_ids
     * @return
     */
    public int deletes(List<Integer> menu_ids){
        if(menu_ids ==null || menu_ids.size()==0){
            return 0;
        }
        mam.deleteMenuForRole(menu_ids);
        return mam.deleteBatchIds(menu_ids);
    }
}
